<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    

<!-- <script src="./05-Promise.js"></script> -->
<script>

// 原生的Promsie
// console.log( Promise );// ƒ Promise() { [native code] }
// console.log( window.Promise );// ƒ Promise() { [native code] }

let p1 = new Promise((resolve,reject)=>{// excutor执行器函数，同步执行
    console.log( 'excutor函数...' );

    // 1.先改变状态，再指定成功和失败的回调函数
    // resolve(123);
    // reject(456);

    // 2.先指定成功和失败的回调函数，再改变状态
    setTimeout(()=>{
        console.log( '异步完成...' );
        resolve(123);
        // reject(456);
    },100);

});
// console.log( p1 );// Promise {state: 'fulfilled', result: 123}
p1.then(// then方法，同步执行
    (res)=>{// 成功状态的回调函数，异步执行
        console.log( 'p1成功1',res );
    },
    (res)=>{// 失败状态的回调函数，异步执行
        console.log( 'p1失败1',res );
    }
);
p1.then(// then方法，同步执行
    (res)=>{// 成功状态的回调函数，异步执行
        console.log( 'p1成功2',res );
    },
    (res)=>{// 失败状态的回调函数，异步执行
        console.log( 'p1失败2',res );
    }
)

</script>
</body>
</html>